The present invention relates to the disabling of error-correction on digital optical media, such as Compact Disc (CD), Compact Disc Read_only Memory (CD-ROM) and Digital Video Disc (DVD).
Digital optical media is well-known in the art and is utilized to store large amounts of digital data in digital form, such as audio data, video data, software data, or document data. Software and document data may be read and utilized by a computer from digital optical media, such as Compact Disc Read-Only Memory (CD-ROM). There are also widely-available players for reading data from digital optical media and using this data to reconstruct audio, visual, text, and audio-visual information. Such players include, but are not limited to, CD players, CD-ROM multi-media players, game-playing systems, and DVD-players, which can reproduce sound, images, and test from data stored on digital optical media. Some computers are also configured to duplicate the functionality of CD players, CD-ROM multi-media players, game-playing systems, and DVD-players.
Description of Prior Art Digital Optical Media
Digital optical media technology is established according to a series of international standards, all of which are incorporated herein by reference. For example, some common standards applicable to CD's include: the International Standards Organization (ISO) standard 9660 entitled "Information Processing--Volume and File Structure of CD-ROM for Information Interchange, ISO standard 13490-I", the International Electrotechnique Commission (CEI-IEC) standard 908, also known as the "Red Book", and ISO/IEC 10140, also known as the "Yellow Book".
FIG. 1 is a cross-sectional schematic of a portion of the data surface of a digital optical medium. Referring briefly to FIG. 1, according to these standards, digital optical media has at least one layer of transparent refractive material 10 which has data recorded on one surface which is coated with a reflective material 12, and covered with an optional protective layer 14. Reflective material 12, in combination with transparent refractive material 10, produces transparent reflective layer 24 whose optical properties depend on the properties both of reflective material 12 and transparent refractive material 10.
Reading Data from Digital Optical Media
In order to read the data written onto Digital Optical media, such as CD-ROM and DVD, the media is rotated at a precisely-controlled speed, and light from a laser is focused through the disc-shaped substrate into transparent reflective layer 24 from which it is reflected back to a detector which measures the intensity of the reflected light. During the recording or manufacturing process of the digital optical media, the optical properties of the layer 24 are physically modified according to the data to be recorded so that the reflected light will vary significantly in intensity depending on where the laser light strikes. Typically, there are two different intensity levels for the reflected light. A region 18 which reflects a high intensity of the laser light is referred to as "land", and a region 20 which reflects a low intensity of light is referred to as "pit". Pits and lands may be physically implemented in different ways, but they always have the property of reflecting discernibly different light intensities. Moreover, pits and lands have sharp, well-defined boundaries 22, so that it is possible to precisely identify the location where a pit ends and a land begins and where a land ends and a pit begins. The boundary 22 between one region and another is known as a "transition".
Data is recorded on to Digital Optical Media in a spiral track along which these patterns of pits and lands are laid out in a linear fashion. As the media spins, the laser light sweeps along the track and whenever the intensity of the reflected light changes from one value to another, i.e. when the incident light passes either from land to pit or from pit to land, the detector circuitry signals that a transition has occurred. It is not the intensity of the reflected light, but rather the precise timing of these transitions from one intensity to the other (relative to a data clock maintained within the digital data detector of the medium reader) which represents the digital data recorded on the media.
Data Representation
Digital data is represented within a computer or optical media player as a series of "bits" (binary digits, i.e., 1's and 0's), where 8 bits are typically grouped into a data unit referred to as a "byte". In general, the sequence of bits is unconstrained in the sense that any specific bit can be succeeded by a 1 or a 0. It is not desired, however, to record unconstrained data on digital optical media using the recording technique previously described (i.e., if pits represent 1's and lands represent 0's or if a transition occurs only when a 1is recorded), because transitions may then occur too frequently or not frequently enough, depending on the data. For example, a long sequence of 1's or a long sequence of 0's would result in a very long space between transitions, and this would cause the data decoder clock to lose synchronization with the data recorded on the track. Moreover, on extremely long runs of 1's or 0's would cause a very long space to occur between successive pits in the in-track direction, this could interfere with the ability of the playback spot to follow such a track. A series of alternating 1's and 0's on the other hand would result in a very short space between transitions and would require the disc reader to have an extremely small focused spot size. To avoid these problems, therefore, prior to recording,. every byte of data is instead encoded to convert it to a constrained binary sequence that exhibits at least a desired minimum number of 0's, but not more than a desired maximum number of 0's, between any two 1's.
For example, on a CD, data bytes are converted to a 14-bit constrained sequence using a mapping known as the Eight-to-Fourteen-Modulation (EFM) code, as is partially illustrated by way of example in the table of FIG. 2, to which reference is now briefly made. The table of FIG. 2 comprises two columns, referenced 26 and 28, which list the byte values and the corresponding channel bit EFM codes, respectively. Each 14-bit EFM code sequence observes strict limits in the spacing of the transitions along the digital optical media data track. In the EFM code sequences, transitions are indicated by 1's and no variation of the media track feature (i.e., pit or land) is indicated by 0's, but only certain patterns are used. Valid EFM code sequences have the property that transitions occur no closer than three (3) length units from one another, and no further than eleven (11) length units from another. The value of a length unit which corresponds to a single EFM code bit, may vary from one embodiment to another, but in CD digital optical media it is nominally on the order of 0.3 micrometers. There are 256 different valid EFM codes which have been arbitrarily assigned to represent the 256 different byte patterns, and it is the EFM code sequences which are actually recorded on the digital optical media data track. The individual bits of these code sequences are referred to as "channel bits" of the recorded data, of which EFM encoding is but one embodiment of channel coding.
Referring briefly to FIG. 3 which is a schematic illustration of digital signals, the player detects transitions and indicates them by a pulse 30 in time, and it indicates an absence of transition by a constant signal value 32. This pulse signal can be obtained by taking a rectified derivative of signal 34 which is output by the disc player as its focused read spot scans the data track segment formed by pits 20 (FIG. 1). When the signal is plotted as an ordinate 38 against a time abscissa divided into suitable time units 36, which correspond to the scanning of a single length unit (channel bit) along the optical media track. The positions of the transitions 30 indicate the channel bit 1's, and the constant signal positions indicate the channel bit 0's. In the example of FIG. 3, the detected 14-bit EFM code sequence 10001000100000. Referring to the table in FIG. 2 shows that the byte encoded by the particular channel bit sequence has a byte value 03.
To further insure that the minimum and maximum length limits that separate transitions are strictly observed, successive 14-bit EFM code sequences are joined by special 3-bit groups known as "merge bits" which contain no information, but are able to produce a transition if needed to maintain the transition spacing constraints. The use of such encoding as EFM places reasonable bounds on the frequency spectrum of the playback signal regardless of the data recorded along the track and enables digital data to be read from the media with sufficient accuracy. When the player reads the digital optical media track, the timing of the channel bit transitions is measured relative to the period of the data detectors internal clock to determine which code sequence is present, and this is then translated by a look-up table into the corresponding data byte value.
Physically, the channel bits are represented in the digital optical media as regions of pits alternating with regions of lands, such that the regions have well-defined sizes in the in-track direction which are integer multiples of a size corresponding to the length unit, a channel bit. For CD, the minimum size of a region is three times this size, while the maximum size (0.9 mm) of a region is eleven (11) times this size (3.3 mm).
Frames
In CD recording, EFM encoded symbols (byte values are referred to as symbols) are used to build groups of special data units called "frames", through which higher-level data organization and coordination is achieved. By way of example, FIG. 4, to which reference is now briefly made, illustrates a frame for a CD.
The CD frame begins with a synchronization header 40, which is a special sequence of transitions used by the player to detect the beginning of the frame, to calibrate its timing, and to adjust the rotational speed of the media. Following the header is a special control symbol 41, which is followed by 12 data symbols 42, four error correction symbols 44, 12 more data symbols 46, and another four error correction symbols 48, for a total of 33 symbols. Each EFM encoded symbol 43 comprises 14 channel bits, and adjacent symbols are separated by a pattern of 3 merge bits 45. A group of a specified number of successive frame is referred to as a "section". On a CD, for example, 98 contiguously recorded frames constitute a section. Sections recorded on CD digital optical media track are assigned unique numbers, and it is thus possible to make unequivocal reference to any individual control and display section on the data track. The location of any individual symbol of a CD-ROM data sector within the data track, relative to the start of a specific control and display section, can be determined of one knows the offset between the start of a control and display section and the first logical byte of a CD-ROM sector.
Error Correction
Transitions are physically represented by microscopic patterns of pits and lands, and excessive physical damage to the media surface, such as a scratch, can obscure the precise location of the region boundaries and thereby corrupt the data reading. To protect against such hazards, the media is written with additional, redundant data in the form of error correcting symbols, also known as "redundancy symbols". These are mathematically determined to correspond to the other data written on the media in such a way that the player can use them as it reads the media not only to determine if errors have occurred, but under certain conditions to correct errors. A fixed number of data symbols, together with fixed number of redundancy symbols compacted for them form a data structure known as an error correction codeword. Methods for choosing and implementing appropriate error correction coding are well-known in the art. The error correction code (ECC) employed in the CD system is referred to as the "Cross-Interleave Reed-Solomon Code" (CIRC).
In ordinary use, error detection and correction is desirable, as it reduces the probability that the data read from digital optical media and delivered to the user will becomes corrupted by minor physical damage to the media.
Data Interleaving
Symbols occurring sequentially on the data track of digital optical media do not correspond to sequential bytes in the input stream of user data. Rather, each byte of sequential data is assigned a non-sequential location within a specific frame when its corresponding symbol is written onto the disk. This is known as "interleaving", and is schematically illustrated in FIG. 5, to which reference is now briefly made. A series of sequential data bytes 50 divided into groups 52 of 24 bytes is mapped into a corresponding series of symbols which are sequentially recorded on the data track of the CD. As previously mentioned, data sequentially recorded on the data track in sequentially divided into frames 56. A particular data byte 58 is mapped to a symbol in a specific location in a specific frame 60, and the next byte 62 within the same group is mapped to a symbol in a much later frame 64. This process is repeated so that the next sequential byte 66 is mapped to an even later frame 68. In a similar way, previous data byte 70 has been mapped to frame location 72 in the space between later consecutive byte 58 and 62. The precise mapping for CD's is illustrated in the table in FIG. 6.
The purpose of interleaving is to spread out the physical locations of the sequential input data over the media so that localized damage to the media surface will not grossly impact any one segment of the data. Instead, the effect of the damage will be distributed over a large data segment. In particular, the interleaving is chosen to sufficiently insure that reasonable levels of digital storage medium imperfection damage will cause contamination of only a few constituent symbols of an ECC codeword. This will insure that the position of the erroneous symbols in the codeword can be located and that then correct values can be calculated when the ECC codeword is decoded in such a way that only small number of erroneously recovered data symbols (i.e., errors) will occur in any one contiguous segment of the data.
The input bytes of data to be recorded on a CD are considered to be in groups of 24. The size of this group corresponds to the number of input data symbols within a frame on the media data track. FIG. 6, to which reference is now briefly made, illustrates precisely how sequential bytes of data in 24-byte group n (column 74) are mapped to non-sequential frames (column 76) and symbol locations (column 78) within those frames on a CD data track. It may be noted from FIG. 6 that no data is mapped to frame symbol number 0, since this location is where the control symbol is placed. Furthermore, no data is mapped to frame symbol numbers 13, 14, 15 and 16, not to frame symbol numbers 29, 30, 31, and 32, since these locations are sued for the error-correcting redundancy symbols.
Reading and Error Correcting
As the optical media player reads the EFM channel sequences corresponding to each symbol from the digital optical media, it checks them to make sure that they are valid. For example, if a CD layer encounters a channel sequence with two transitions less than 3 or more than 11 time units apart, it flags that symbol as invalid, since the channel bit sequences used in CD are the EFM code sequences and no valid EFM code sequence has such transitions. An error of this sort is referred to as a "run length limited" (RLL) error, and an invalid symbol thus flagged is referred to as an "erasure". Under normal circumstances an RLL error implies that the media has been damaged in such a way that the transition timing cannot be read properly. In certain conditions, erasures may be corrected by the ECC decoder.
It is also possible that a symbol might have been damaged, but in such a way that it corresponds to a valid channel bit sequence. To guard against such errors, the ECC decoder checks every recovered ECC codeword to determine if any of its constituent symbols have been read erroneously. In certain conditions, such errors may also be corrected by the ECC decoder.
The Phases of Data Re-ordering and Error Correction
During the reading operation, the player re-orders the data symbols contained in the sequentially recovered frames recorded on the media into their correct sequence. For CD digital optical media there are two separate phases of the data reordering, and at each phase a different set of error correcting code words are formed and checked (by the ECC decoder) for errors. Other embodiments may employ additional phases. This is schematically illustrated for CD's in FIG. 7, reference to which is now briefly made. The decoded channel bit symbols 80 corresponding to the last 32 symbols of each recovered frame pass through a partial de-interleaving step 82, comprising a number of delays for selected symbol positions. Then "C1", the first level of error correction 84 is applied to the resulting 32-symbol C1 ECC codeword. This is followed by a further partial de-interleaving step 86, after which "C2", the second level of error correction 88 is applied to the resulting 28-symbol C2 codeword. The final de-interleaving step 90 results in the data bytes 92 being reassembled into their original input sequence order with the two levels of error correction having been applied in the process. (The four C1 code redundancy symbols and the four C2 redundancy symbols are discarded after C1 and C2 decoding, respectively.)
In the first level 84 the C1 decoder may be able to correct errors not only in the 24 data symbols, but also errors in the four C2 redundancy symbols that comprise the C1 codeword. Each of the 24 data symbols in a particular C1 codeword was originally contained in one of 24 different input data frames. Each of the four C2 redundancy symbols belong to one of four different C2 codewords; all four C1 redundancy symbols below to the particular C1 codeword. The C2 codeword obtained in the second level error correction comprises 24 input data symbols taken from only two input data frames and the four C2 parity symbols all belong to the particular C2 codeword.
Each level of the CIRC error-correcting decoding is able to detect the existence of erroneous symbols in a specific codeword, and within any such codeword may correct up to two erroneous symbols whose locations within the codeword are unknown. Error locations are normally unknown when the erroneous symbols were obtained from valid EFM code sequences, for such errors are not immediately recognizable by the EFM decoding process as such. If, on the other hand, the locations of erroneous symbols are known, the CIRC method may correct up to four erroneous symbols. Error locations are normally known when the errors correspond to invalid EFM code sequences which were previously marks by the EFM decoder as erasures. Thus, each phase of error correction may correct up to t.sub.e valid symbols which are erroneous, and up to t.sub.x erasures, such that t.sub.e and t.sub.x jointly satisfy the inequality 2t.sub.e +t.sub.x &lt;5. Each phase of error correction may thus also correct one valid symbol which is erroneous and two erasures. Errors in excess of these limits will be detected with finite probability, but the player will not be able to correct them. We note that the probability of detecting that an ECC code word contains an non-correctable number of errors decreases as the number of errors in the codeword increases.
If the decoder fails to detect that a non-correctable number of errors has contaminated a specific codeword, it will deliver (at its option) a valid codeword that is different from the original (contaminated) codeword. This output codeword will, in general, have symbol values in several codeword locations that are different from the those in either the original uncontaminated codeword or the contaminated original codeword.
Thus, the player recorders the data from the symbols recorded on the digital optical media track and while so doing, it attempts to detect errors and to correct them in two related, but distinct, phases. In this manner, under normal conditions a player will be able to recover virtually error-free all the data from digital optical media which has been subjected to ordinary care in handling.
There are, however, occasions when it is useful to override such error and/or erasure correction capabilities in a player of the media. For example, when performing quality control tests on digital optical media, it is necessary to have a means of evaluating the intrinsic uncorrected error rates inherent in the media; this measurement cannot be performed directly if the player uses error-correcting methods to remove the errors. Another example is in evaluating the efficiency of digital optical media decoding mechanisms.
In a co-pending U.S. patent application Ser. No. 08/689,209, filed Aug. 5, 1996 and owned by the common applicants of the present invention, applicants describe the writing of "invalid" codes onto any digital optical media by not following the standards for writing data. For example, one can create pits and lands which are shorter than three channel bits or longer than eleven channel bits. Alternatively, the transition between pits and lands can be smooth, rather than sharp as required by the standards, or the transitions can be located so as not to be synchronized with a channel data detector clock signal.
Invalid EFM code sequences can be used to mark digital optical media with identifying data. The erroneous data symbols obtained from invalid EFM code sequences can also be used as a key for protecting software by performing certain operations to ascertain that the marked optical media has markings specific to (e.g., at certain data track locations) the protected software, before the protected software product can run. The key can also function as the encryption and/or decryption key if the data, or a software program, has been encrypted. However, in order for these bytes that comprise the key to be "seen" by copy-protection software, they must be processed by the ECC decoder(s). If the ECC decoder(s) consistently change the byte values that comprise the key (i.e., the byte values that correspond to the invalid EFM code sequences, to the specific correct values prescribed by the ECC codeword), the key will be hidden from the copy-protection software.